<?php
/**
 *  * 系统-受国家计算机软件著作权保护 - !
 * =========================================================
 * Copy right 2018-2025 成都海之心科技有限公司, 保留所有权利。
 * ----------------------------------------------
 * 官方网址: http://www.ohyu.cn
 * 这不是一个自由软件！在未得到官方有效许可的前提下禁止对程序代码进行修改和使用。
 * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
 * =========================================================
 * User: ohyueo
 * Date: 2023/11/7
 * Time: 14:42
 */

namespace app\listener\common;
use app\api\models\EscortSpeefiles;

class SpeechListener
{
    /**
     * 事件监听处理
     *
     * @return mixed
     */
    public function handle($event)
    {
        return $this->sendMessage($event['text']);
    }

    /**
     * 生成语音文件
     *
     * @param $text
     */
    public function sendMessage($text)
    {
        //调用 ali speech api
        $aliyun = new \app\common\AliYun();
        $result = $aliyun->tts($text);
        if(!$result){
            return false;
        }
        //先查询数据库是否有这个内容如果有就不重新生成文件
        $isr=EscortSpeefiles::where('content',$text)->value('file');
        if($isr){
            $file=$isr;
        }
        else{
            //保存文件
            $file = 'uploads/speech/'.date('Ymd').'/'.time().'.mp3';
            $path = ROOT_PATH . $file;
            $dir = dirname($path);
            if(!is_dir($dir)){
                mkdir($dir, 0777, true);
            }
            file_put_contents($path, $result);
            //保存到数据库
            $daiban = new EscortSpeefiles();
            $daiban->title = '语音通知';
            $daiban->content = $text;
            $daiban->file = $file;
            $daiban->save();
        }
        return $file;
    }
}

